package com.zhiche.lisa.tms.dao.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 运单货物明细
 * </p>
 *
 * @author qichao
 * @since 2018-06-18
 */
@TableName("lisa_ship_order_item")
public class ShipOrderItem extends Model<ShipOrderItem> {

    private static final long serialVersionUID = 1L;

	@TableId(value="id", type= IdType.AUTO)
	@JsonSerialize(using=ToStringSerializer.class)
	private Long id;
    /**
     * 运单编号
     */
	@TableField("ship_order_code")
	private String shipOrderCode;
    /**
     * 订单货物编号
     */
	@TableField("order_item_id")
	private Long orderItemId;
	/**
	 * 所下订单中的原始货物标识信息(客户系统推送或录单人录入)
	 */
	@TableField("issue_item_id")
	private String issueItemId;
	/**
	 * 货物分组
	 */
	private String material;
    /**
     * 创建时间
     */
	@TableField("gmt_create")
	private Date gmtCreate;

	/**
	 * 租户ID
	 */
	@TableField("tenant_id")
	private Long tenantId;

	@TableField("is_delete")
	@TableLogic
	private Integer isDelete;

	@TableField("item_source_key")
	private String itemSourceKey;

	@TableField("wms_ship_time")
	private Date wmsShipTime;

	/**
	 * 业务主体
	 */
	@TableField("ciams_id")
	private String ciamsId;

	/**
	 * 客户运单号
	 */
	@TableField("cusWaybill_id")
	private String cusWaybillId;
	/**
	 * 末端指令 1:是  0:否
	 */
	@TableField("terminal")
	private String terminal;

	@TableField("receipt_status")
	private String receiptStatus;

	public String getReceiptStatus() {
		return receiptStatus;
	}

	public void setReceiptStatus(String receiptStatus) {
		this.receiptStatus = receiptStatus;
	}

	public String getTerminal() {
		return terminal;
	}

	public void setTerminal(String terminal) {
		this.terminal = terminal;
	}

	/**
	 * 下单时间
	 */
	@TableField("order_time")
	private Date orderDate;

	/**
	 * 订单号
	 * @return
	 */
	@TableField("order_no")
	private String orderNo;

	public Date getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getCiamsId() {
		return ciamsId;
	}

	public void setCiamsId(String ciamsId) {
		this.ciamsId = ciamsId;
	}

	public String getCusWaybillId() {
		return cusWaybillId;
	}

	public void setCusWaybillId(String cusWaybillId) {
		this.cusWaybillId = cusWaybillId;
	}

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public Date getWmsShipTime() {
		return wmsShipTime;
	}

	public void setWmsShipTime(Date wmsShipTime) {
		this.wmsShipTime = wmsShipTime;
	}

	public Integer getIsDelete() {
		return isDelete;
	}

	public void setIsDelete(Integer isDelete) {
		this.isDelete = isDelete;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getShipOrderCode() {
		return shipOrderCode;
	}

	public void setShipOrderCode(String shipOrderCode) {
		this.shipOrderCode = shipOrderCode;
	}

	public Long getOrderItemId() {
		return orderItemId;
	}

	public void setOrderItemId(Long orderItemId) {
		this.orderItemId = orderItemId;
	}

	public Date getGmtCreate() {
		return gmtCreate;
	}

	public void setGmtCreate(Date gmtCreate) {
		this.gmtCreate = gmtCreate;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}


	public Long getTenantId() {
		return tenantId;
	}

	public void setTenantId(Long tenantId) {
		this.tenantId = tenantId;
	}

	public String getIssueItemId() {
		return issueItemId;
	}

	public void setIssueItemId(String issueItemId) {
		this.issueItemId = issueItemId;
	}

	public String getMaterial() {
		return material;
	}

	public void setMaterial(String material) {
		this.material = material;
	}

	public String getItemSourceKey() {
		return itemSourceKey;
	}

	public void setItemSourceKey(String itemSourceKey) {
		this.itemSourceKey = itemSourceKey;
	}

	@Override
	public String toString() {
		return "ShipOrderItem{" +
				"id=" + id +
				", shipOrderCode='" + shipOrderCode + '\'' +
				", orderItemId=" + orderItemId +
				", issueItemId='" + issueItemId + '\'' +
				", material='" + material + '\'' +
				", gmtCreate=" + gmtCreate +
				", tenantId=" + tenantId +
				", isDelete=" + isDelete +
				", itemSourceKey='" + itemSourceKey + '\'' +
				", wmsShipTime='" + wmsShipTime + '\'' +
				'}';
	}
}
